package fr.afcepf.al23.qualite.exception;
/**
 * Classe permettant de gerer les exceptions de l'application.
 * @author Stagiaire
 * @see Exception
 */
public class QualityException extends Exception {
    /**
     * serial version.
     */
    private static final long serialVersionUID = 1L;
    /**
     * Enumeration des codes d'erreurs.
     */
    private static enum ErrorCode {
        /**
         * lors de l'enregistrement de l'utilisateur.
         */
        MAIL_EXISTE,
        /**
         * lors du passage de la commande.
         */
        COMMANDE_INVALIDE };
    /**
     * Code d'erreur de l'exception.
     */
    private ErrorCode code;
    /**
     * Default Constructor.
     */
    public QualityException() {
        super();

    }

    /**
     * @param paramMessage message.
     * @param paramCause cause.
     * @param paramEnableSuppression .
     * @param paramWritableStackTrace .
     */
    public QualityException(String paramMessage,
            Throwable paramCause,
            boolean paramEnableSuppression,
            boolean paramWritableStackTrace) {
        super(paramMessage, paramCause,
                paramEnableSuppression, paramWritableStackTrace);
    }
    /**
     * @param paramMessage message.
     * @param paramCause cause.
     */
    public QualityException(String paramMessage,
            Throwable paramCause) {
        super(paramMessage, paramCause);
    }
    /**
     * @param paramMessage message.
     */
    public QualityException(String paramMessage) {
        super(paramMessage);
    }
    /**
     * @param paramCause cause.
     */
    public QualityException(Throwable paramCause) {
        super(paramCause);
    }

    /**
     * @return the code
     */
    public ErrorCode getCode() {
        return code;
    }
    /**
     * @param paramCode the code to set
     */
    public void setCode(ErrorCode paramCode) {
        code = paramCode;
    }
}
